package com.contract.service;

import com.contract.mapper.BizTemplateMapper;
import com.contract.pojo.bo.BizTemplate;
import com.contract.pojo.input.TemplateSaveInput;
import com.contract.pojo.output.JsonResult;
import com.contract.pojo.output.TemplateOutPut;
import com.contract.service.common.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 合同模板service
 *
 * @author liw
 * @version 1.0
 * @date 2022/6/13 11:10
 */
@Slf4j
@Service
public class BizTemplateService extends BaseService {

    @Autowired
    private BizTemplateMapper bizTemplateMapper;

    /**
     * 查询列表
     *
     * @return data
     */
    public JsonResult<List<TemplateOutPut>> queryList() {
        List<BizTemplate> list = bizTemplateMapper.selectList(null);
        List<TemplateOutPut> outList = new ArrayList<>(list.size());
        for (int i = list.size() - 1; i >= 0; i--) {
            outList.add(dtoConverter.templateBo2Vo(list.get(i)));
        }
        return JsonResult.success(outList);
    }

    /**
     * 查询
     *
     * @return data
     */
    public JsonResult<TemplateOutPut> queryInfo(Long id) {
        BizTemplate bizTemplate = bizTemplateMapper.selectById(id);
        TemplateOutPut templateOutPut = dtoConverter.templateBo2Vo(bizTemplate);
        return JsonResult.success(templateOutPut);
    }

    /**
     * 查询
     *
     * @return data
     */
    public JsonResult<Long> save(TemplateSaveInput vo) {
        BizTemplate bizTemplate = dtoConverter.templateVo2Bo(vo);
        if (vo.getId() == null) {
            bizTemplateMapper.insert(bizTemplate);
        } else {

            bizTemplateMapper.updateById(bizTemplate);
        }
        return JsonResult.success(bizTemplate.getId());
    }

}
